Skip to content

CI: add manual iOS runner prebuild cache for iOS job#50

Merged
thymikee merged 14 commits into
mainfrom
codex/ios-runner-prebuild-ci-cache
Feb 13, 2026
Merged

CI: add manual iOS runner prebuild cache for iOS job#50
thymikee merged 14 commits into
mainfrom
codex/ios-runner-prebuild-ci-cache

Conversation

@thymikee
Copy link
Copy Markdown
Member

Summary

  • add a new manual-only workflow to prebuild ios-runner for iOS 26.2 on macos-26
  • store the prebuild as a cache keyed by Xcode version and iOS runtime
  • update iOS integration workflow to restore and hydrate the prebuild cache, with fallback to pnpm build:xcuitest on cache miss
  • simplify iOS boot preflight by removing explicit UDID wiring and using boot --platform ios --device "iPhone 17 Pro"

Why

  • keep prebuild refresh on-demand (for example when runner Xcode changes)
  • speed up normal iOS CI when cache is available
  • avoid npm distribution for now

Notes

  • prebuild workflow runs only via workflow_dispatch
  • no npm publish or prepack behavior changes

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Feb 13, 2026

PR Preview Action v1.8.1

QR code for preview link

🚀 View preview at
https://callstackincubator.github.io/agent-device/pr-preview/pr-50/

Built to branch gh-pages at 2026-02-13 17:34 UTC.
Preview will be ready when the GitHub Pages deployment is complete.

thymikee and others added 13 commits February 13, 2026 13:28
- Remove standalone ios-runner-prebuild.yml (redundant — ios.yml builds on cache miss)
- Switch from actions/cache/restore to actions/cache (auto-saves on miss)
- Drop restore-keys and -stable suffix (no longer needed without prebuild workflow)
- Remove UDID resolution step (test falls back to --platform ios)
- Use point-free shouldRetry for isTransientSimulatorLaunchFailure

Co-authored-by: Cursor <cursoragent@cursor.com>
SpringBoard can take several seconds after boot to accept app launches.
Increase from 3 attempts / 500ms–2s to 5 attempts / 1s–5s to give CI
simulators enough time.

Co-authored-by: Cursor <cursoragent@cursor.com>
The fixed-attempt retry (5 attempts, ~12s window) is too short for CI
simulators where SpringBoard needs 30-60s after boot to accept app
launches — especially when the build step is cached and provides zero
warm-up time.

Switch to a deadline-based approach matching ensureBootedSimulator:
- Default 30s timeout (configurable via AGENT_DEVICE_IOS_APP_LAUNCH_TIMEOUT_MS)
- CI sets 60s to handle cold-boot scenarios
- maxAttempts set high (30) so the deadline is the real limit

Co-authored-by: Cursor <cursoragent@cursor.com>
@thymikee thymikee merged commit e3b1aa6 into main Feb 13, 2026
6 checks passed
@thymikee thymikee deleted the codex/ios-runner-prebuild-ci-cache branch February 13, 2026 17:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant